<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>箭头函数</title>
</head>

<body>
    <script>
        //ES6 允许 使用 箭头 (=>) 定义函数
        //声明一个函数
        // let fn = function(){

        // }

        // let fn = (a, b) => {
        //     return a + b;

        // }

        // 1.this 是静态的，this 始终指向函数声明时所在作用域下的this的值

        function getName() {
            console.log(this.namee);
        }

        let getName2 = () => {
            console.log(this.name)
        }

        //设置window对象的name属性
        Window.name = '尚硅谷';

        const school = {
            name: "ATGUIGU"
        }

        //直接调用
        //尚硅谷
        // getName();
        // //尚硅谷
        // getName2()

        //call 方法调用
        //ATGUIGU
        // getName.call(school);
        // //尚硅谷
        // getName2.call(school)


        //2 不能作为构造，实例化对象
        let Person = (name, age) => {
            this.name = name;
            this.age = age;
        }

        let me = new Person('xiao', '30');
        //Person is not a constructor
        console.log(me);

        //3.不能使用arguments 变量
        let fn = () => {
            console.log(arguments);
        }

        fn(1, 2, 3);

        //4.箭头函数的简写
        // 省略小括号，当形参有且只有一个的时候
        let add = n => {
            return n + n;
        }
        console.log(add(9));
        // 省略花括号，当代码体只有一条语句的时候,rturn 省略
        let pow = n => n * n;

        console.log(pow(9))



    </script>
</body>

</html>